package com.x.aoki.ribbon.rules;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 自定义的 ribbon 的路由规则
 *  注意：此类不可与XOrderApplication放在同一个包下
 *  （即不能被 ComponentScan 注解扫描到，否则就会被所有的ribbon 实例共享配置，达不到定制化效果了）
 *
 *  负载均衡算法的原理：
 *      1.rest 接口第几次请求数 % 总的实例数 = 实际调用的服务器的下标，每次服务重启后rest 接口计数从 1 开始。
 *
 * @author caoy
 * @date 2025-02-17 12:57:53
 */
// @Configuration
public class MySelfRule {

    @Bean
    public IRule myRule(){
        return new RandomRule();
    }
}
